Multi-storage-device arrays can take the form of a tray, a sled, a rack, a cabinet, etc. These arrays can host multiple data storage devices (e.g., one or more solid state drives, one or more hard disk drives, one or more tape drives, or any combination thereof, also referred to herein as simply “storage devices”) and a central system of shared components. For example, a processor that implements a data service enabling clients to access to the storage devices. A client is a consumer of the data service, and can execute at one or more client computing devices. The controller can access the storage devices as independent drives by communicating with storage controllers in the storage devices through respective storage adapters. The central system can further include a central network interface, a central volatile memory space, and a central power interface. Sharing a central system (e.g., a central controller, a central network interface, a central power interface, a central volatile memory space, etc.) among the storage devices conserve electronic resources. Using these centralized components further enables the storage space of the multi-storage-device to flexibly expand or contract without needing to add additional supportive components (e.g., an additional network interface, power interface, etc.)
Multi-storage-device arrays can be subject to power failures. For example, a power failure can be due to power grid outage, hardware failure, or man-made mistakes (e.g., an information technology (IT) technician pulling a storage device out of the array or pulling the array out of a system having multiple arrays). When writing large amount (also, “chunk”) of information into a single storage device, the write-speed of the storage device may be insufficient to accommodate a synchronous write relative to the data transfer speed via the storage adapters. Accordingly, storage devices may include a write cache. A write cache generally comprises data storage that has much faster transfer speeds than other types of data storage devices. Write caches typically use volatile memory. Thus, during a power failure event, unless a specific instruction to flush the write cache is given, the write cache can lose data when experiencing the power failure event.
Some brands of storage devices have proprietary power failure recovery mechanisms. However, these power failure recovery mechanisms differ from one brand to another. Also, not all storage devices, including ones with attributes that are desirable for a multi-storage-device array, have a power failure recovery mechanism. This presents a challenging problem when storage devices are selected based on those desirable attributes, leaving the multi-storage-device array with at least a subset of its storage devices (e.g., storage “drives”) without power failure recovery mechanisms. Moreover, storage devices having power failure recovery mechanisms tend to be more expensive than those not having such mechanisms.
The figures depict various embodiments of this disclosure for purposes of illustration only. One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of embodiments described herein.